package com.example.dahua.decorator;

/**
 * @author: dangwen
 * @createDate: 2021/7/4
 * ConcreteDecoratorA和ConcreteDecoratorB是两个具体的装饰类，
 * 它们可以把基础构件装饰成新的东西，比如把一个普通肉夹馍装饰成鸡蛋里脊肉夹馍
 */
public class ConcreteDecorator extends Decorator {
    public ConcreteDecorator(Component component) {
        super(component);
    }
    // 定义自己特有的装饰方法
    public void decoratorMethod(){
        System.out.println("do decorating");
    }
    @Override
    public void cost() {
        decoratorMethod();
        super.cost();
    }
    public static void main(String[] args) {
        Component component = new ConcreteComponent();
        // 第一次修饰，比如，加个鸡蛋，加一块钱
        component = new ConcreteDecorator(component);
        // 第二次修饰，比如，加个烤肠，加两块钱
        component = new ConcreteDecorator(component);
        component.cost();
    }
}
